The cartoon animation filter
https://youtu.be/GjSQPaFTh4M
We present the "Cartoon Animation Filter", a simple filter that takes an arbitrary input motion signal and modulates it in such a way that the output motion is more "alive" or "animated". The filter adds a smoothed, inverted, and (sometimes) time shifted version of the second derivative (the acceleration) of the signal back into the original signal. Almost all parameters of the filter are automated. The user only needs to set the desired strength of the filter. The beauty of the animation filter lies in its simplicity and generality. We apply the filter to motions ranging from hand drawn trajectories, to simple animations within PowerPoint presentations, to motion captured DOF curves, to video segmentation results. Experimental results show that the filtered motion exhibits anticipation, follow-through, exaggeration and squash-and-stretch effects which are not present in the original input motion data.
私たちは、任意の入力モーション信号を受け取り、出力モーションがより「生き生き」または「アニメーション化」されるような方法でそれを変調する単純なフィルターである「カートゥーン アニメーション フィルター」を紹介します。 フィルターは、信号の二次導関数 (加速度) の平滑化、反転、および (場合によっては) 時間シフトされたバージョンを元の信号に追加します。 フィルターのほぼすべてのパラメーターは自動化されています。 ユーザーはフィルターの希望の強度を設定するだけで済みます。 アニメーション フィルターの美しさは、そのシンプルさと汎用性にあります。 このフィルターは、手描きの軌跡から、PowerPoint プレゼンテーション内の単純なアニメーション、モーション キャプチャされた DOF カーブ、ビデオ セグメンテーションの結果に至るまで、さまざまなモーションに適用されます。 実験結果は、フィルタリングされたモーションが、元の入力モーション データには存在しない予測、フォロースルー、誇張、および押しつぶしとストレッチの効果を示すことを示しています。
Intro
カートゥーン・アニメーションは、主要なアクションを強調する一方で、無関係な動きを最小限に抑えるように動きを操作する技術である。
Thomas and Johnston’s ”The Illusion of Life” 1995
Lasseter 1987
様々なモーション信号に対して、先読み/フォロースルーと、スカッシュ/ストレッチの両方を加えることができる、シンプルかつ一般的なカートゥーンアニメーションフィルタを紹介する
https://gyazo.com/b4b62b0db51eb15892777e3abb3eab59
$ x^*(t) = x(t) - \bar{x''(t)}
$ \bar{x''(t)} は$ x(t)の二次導関数を平滑化 (場合によっては時間シフト)したもの
ガウス (LoG) フィルターの逆ラプラシアンで畳み込むことと同等
先行研究と比べて?
Unuma et al. 1995 とか Bruderlin and Williams 1995 に比べて
ひとつのフィルターで先読み・follow through、伸縮(squash and stretch)を生成する
単一パラメータ(強度)の操作だけ
誰でも使える
多様な動作信号
ビデオ録画、MoCap、パワポ……
技術のキモ
3.1 Filtering
$ x^*(t) = x(t) - \bar{x''(t)} \otimes Ae^{(−(((t/σ)± \Delta t^2)}
$ Aは強度
$ \sigmaはスムージングの幅(正規分布)
$ \Delta tはタイムシフト
$ x^∗(t) = x(t) \otimes −LoG
$ LoG (Laplacian) of the Gaussian
Gaussianでの平滑化(ノイズ除去)→Laplacian(エッジ抽出)
効果的でコンパクトになった
逆LoGフィルタはアンシャープマスクと似ている
リンギングが起こる
画像処理では通常望ましくない
リンギングとは、画像のコントラストの高い部分に不自然な輪郭が発生する現象です
https://gyazo.com/e9cd07fe45d7e4ff4b1091ca8ea2b3e3
今回はこれが先読みとフォロースルー効果になっている
$ \sigmaと$ \Delta tを自動設定できれば、ユーザーは$ Aだけ触ればいい
3.2 Choosing the Filter Width フィルタ幅$ \sigmaについて
tを中心に32フレーム取ってフーリエ変換
$ \omega^*(t) = dominant visual freq(支配的視覚周波数?モーションの中心となる周波数かな)を求める
すると$ \sigma(t) = 2\pi/\omega^*(t)で求められる
https://gyazo.com/15226a05666475f2c813ee3faf61ac1a
$ \sigmaが固定🟥だと前半がダメ、動的に変化させる🟩といいかんじ
3.3 Squash and Stretch $ \Delta tについて
モーションのなかで伸縮(deformation)にかかわる
外周のある頂点$ p・重心からの位置ベクトル$ B_pについて
加速方向 $ s_p = \tilde{\vec{B_p}} \cdot | x'' |
👆からLoGフィルタをタイムシフト $ LoG_p(t) = LoG(t - \Delta t)
$ \Delta t = s_p \cdot \sigma(t)
$ \tilde{\vec{B_p}} = \vec{B_p} / max_p B
kzmi.icon これだと$ \Delta tは各点に対して決まるよな?重心を動かしてる式のはどう決めれば?
各辺に違う加速度を割り当てることで変形する
$ s_p > 0なら前方の辺 先に加速
$ s_p < 0 なら後方の辺 あとから加速
三角分割して内外の点を計算することで回転運動もいける
https://gyazo.com/d9d194554fe5eb6031f877d441093437
3.4 Area preservation 面積を維持するために、伸びた方向と直角に縮める
検証方法
アニメーションの内部にある仕組みとは独立な仕組みなので、いろいろ適用して試してみる
4.1 Filtering Hand Drawn Motion
Hand Drawnというのは手描きアニメではなく、パスカーブが手打ち kzmi.icon
Fig3右
https://gyazo.com/3ce051af8a47c21e4b6e1f298cd10a69
単純なアニメーションに効果が加わる
4.2 Filtering Video Objects
切り出してポリゴンにしてアニメーションフィルタとタイムシフトフィルタ適用
Maintaining constraints 物理的制約に反しないように拘束を加える(人とスケートボーダーの位置関係など)
Texturing deformed objects 内部座標を外部の点の動きから計算し、テクスチャも線形に変形
https://gyazo.com/68bfc054260a760fdb808236cfc15ce4
https://gyazo.com/2c348cc10cd7acdb7705596f0734773f
4.3 Filtering MoCap Data
モーションキャプチャの個々の自由度(DOF)データにフィルタをかけてもうまくいく
$ \sigmaは各DOFに対して動的に設定
リアルタイムに使えるくらい高速
たとえば振幅を変えてキャラのエネルギーレベルを表現できる
Maintaining constraints
床に対して滑らないようにする
今回は足はおろした場所から動かない、というだけの制約
Squash and stretch
MoCapでは変形させる場所が一つではない
簡単のためroot nodeの垂直方向のみ実装、全体が伸縮する
課題?
アニメータの仕事に敵うものではない
シンプルであることを優先している
リアルタイム、子ども向け(非専門的)、パワポなど2Dアニメーション……など用
Refs
Physically-based simulation and stylized simulation
Chenney et al. 2002
Igarashi et al. 2005
Surface deformation
Wyvill 1997
Motion signal processing for exaggerating motion
Unuma et al. 1995
Bruderlin and Williams 1995
Cartoon style animation from video, case-based algorithm for motion curves
Collomosse 2004
Adding flexibility to animated objects
Campbell et al. 2000
Motion magnification system to extract and exaggerate small motions from video
Liu et al. 2005